#ifndef _DiffuseMaterial_H_
#define _DiffuseMaterial_H_

#pragma once
#include "Material.h"

class DiffuseMaterial : public Material {
	shared_ptr<Material> material;

public:
	DiffuseMaterial(Float diffuseStrength = 1) : Material(diffuseStrength) {}
	DiffuseMaterial(shared_ptr<Material> material, Float diffuseStrength = 1) : Material(diffuseStrength), material(material) {}
	~DiffuseMaterial() {}

	virtual Color shade(const Scene *scene, const Ray &ray, const IntersectResult &intersect, const TraceState & traceState) const;
};

#endif // _DiffuseMaterial_H_